package com.whut.mapper;

import com.whut.model.Manageinfo;

import java.util.List;

public interface ManageinfoMapper {
    int deleteByPrimaryKey(Integer mkey);

    int insert(Manageinfo record);

    int insertSelective(Manageinfo record);

    Manageinfo selectByPrimaryKey(Integer mkey);

    int updateByPrimaryKeySelective(Manageinfo record);

    int updateByPrimaryKey(Manageinfo record);

    /*my methods*/
    /***wxd***/
    void leave(Manageinfo manageinfo);

    void sign(Manageinfo manageinfo);

    List<Object> manage(Integer id);

    List<Object> room();

    /**
     * @auther wenyihan
     *
     * @date 11:20 2019/10/28
     * @param （id, userName）
     * @return java.util.List<com.whut.model.Manageinfo>
     */
    List<Manageinfo> getRegistInfoById(int id, String userName);

    Manageinfo getManageInfo(Integer id, Integer registTime);

    void updateReason(Integer id, String registTime, String reason);

    void deleteManageInfo(Integer id, String registTime);

    void updateManageInfo(Manageinfo manageinfo);

    Integer getLeaveTimes(Integer id, Integer registTime);

    Integer getRegistTimes(Integer id, Integer registTime);

    /**
     * @auther wenyihan
     * 对ManageInfo表中的serve进行修改
     * @date 9:47 2019/11/1
     * @param （id, serve）
     * @return java.util.List<com.whut.model.Manageinfo>
     */
    int editManageServerInfo(int id, String serve);

    /**
     * @auther wenyihan
     * 获取所有的请假信息
     * @date 14:40 2019/11/1
     * @param
     * @return java.util.List<com.whut.model.Manageinfo>
     */
    List<Manageinfo> getAllLeaveInfo();

    /**
     * @auther wenyihan
     * 通过日期获取请假信息
     * @date 15:11 2019/11/1
     * @param （date）
     * @return java.util.List<com.whut.model.Manageinfo>
     */
    List<Manageinfo> getLeaveInfoByDate(String date);

    /**
     * @auther wenyihan
     * 通过id和time搜索唯一请假信息
     * @date 16:55 2019/11/1
     * @param （id, time）
     * @return java.util.List<com.whut.model.Manageinfo>
     */
    List<Manageinfo> getReasonByIdAndTime(int id, String time);

    /**
     * @auther wenyihan
     * 通过时间范围筛选考勤信息
     * @date 21:08 2019/11/1
     * @param （id, startTime, endTime）
     * @param leaveTime
     * @return java.util.List<com.whut.model.Manageinfo>
     */
    List<Manageinfo> getRegistInfoByTime(int id, String leaveTime, String startTime, String endTime);

    /**
     * @auther wenyihan
     * 通过id和leaveTime搜索将leave置0
     * @date 23:40 2019/11/1
     * @param (id, date)
     * @return void
     */
    int disagreeSetLeave(int id, String date);

    /**
     * @auther wenyihan
     * 通过id和leaveTime搜索将reason置空
     * @date 23:41 2019/11/1
     * @param (id, date)
     * @return void
     */
    int disagreeSetReason(int id, String date);

    /**
     * @auther wenyihan
     * 通过id和leaveTime搜索将leaveTime置空
     * @date 23:41 2019/11/1
     * @param (id, date)
     * @return void
     */
    int disagreeSetTime(int id, String date);
}